package com.xiaoshuidi.cloud.module.member.service.feedback;

import com.xiaoshuidi.cloud.framework.common.pojo.PageResult;
import com.xiaoshuidi.cloud.module.member.controller.admin.feedback.vo.*;
import com.xiaoshuidi.cloud.module.member.controller.app.feedback.vo.HistoricalFeedbackReqVO;
import com.xiaoshuidi.cloud.module.member.controller.app.feedback.vo.HistoricalFeedbackRespVO;
import com.xiaoshuidi.cloud.module.member.controller.app.feedback.vo.MemberFeedbackCreateReqVO;
import com.xiaoshuidi.cloud.module.member.pojo.feedback.MemberFeedback;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 意见反馈 服务类
 * </p>
 *
 * @author hans.zhang
 * @since 2023-11-28
 */
public interface MemberFeedbackService extends IService<MemberFeedback> {

    /**
     * 创建意见反馈
     *
     * @param loginUserId
     * @param createReqVO
     * @return
     */
    Long create(Long loginUserId, MemberFeedbackCreateReqVO createReqVO);

    /**
     * 分页查询
     * @param pageReqVO
     * @return
     */
    PageResult<MemberFeedbackPageRespVO> feedbackPage(MemberFeedbackPageReqVO pageReqVO);

    /**
     * 查看
     * @param feedbackId
     * @return
     */
    MemberFeedbackGetRespVO get(Long feedbackId);

    /**
     * 处理
     * @param handleReqVO
     * @return
     */
    Boolean handle(MemberFeedbackHandleReqVO handleReqVO);

    /**
     * 分配门店
     * @param assignApartmentReqVO
     * @return
     */
    Boolean assignApartment(AssignApartmentReqVO assignApartmentReqVO);

    /**
     * 历史反馈
     *
     * @param loginUserId
     * @param historicalFeedbackReqVO
     * @return
     */
    PageResult<HistoricalFeedbackRespVO> historicalFeedback(Long loginUserId, HistoricalFeedbackReqVO historicalFeedbackReqVO);

    /**
     * 导出查询
     * @param pageReqVO
     * @return
     */
    List<MemberFeedbackPageRespVO> exportList(MemberFeedbackPageReqVO pageReqVO);

    /**
     * 统计未完成的意见反馈数量
     * @return
     */
    Long incompleteNum();
}
